﻿using PropertyChanged;
using System;
using System.Drawing;
using System.Text.Json;
using System.Text.Json.Serialization;

namespace AmiDraw.Lib.Models
{
    [AddINotifyPropertyChangedInterface]
    public abstract class MultiplotElemtentBase:ICloneable
    {
        public MultiplotElemtentBase()
        {

        }
        
        public abstract string Name { get; }
        public abstract string Description { get; }
        public double X { get; set; }
        public double Y { get; set; }
        public double Height { get; set; }
        public double Width { get; set; }

        public object Clone()
        {
            return this.MemberwiseClone();
        }

        public abstract void Draw(Graphics graphics, string packName, ResultQueryMode mode = ResultQueryMode.Core);
    }

}
